package com.wyg.composite.duck;

/**
 * @description:    装饰者模式，统计鸭子叫的次数，像适配器一样需要实现目标接口
 * @author: WYG
 * @time: 2021/4/10 21:28
 */

public class QuackCounter implements Quackable{
    private Quackable duck;
    private static int numberQuacks;
    public QuackCounter(Quackable quackable) {
        this.duck = quackable;
    }
    @Override
    public void quack() {
        // 每次叫都count++，统计叫的次数
        duck.quack();
        numberQuacks++;
    }

    /**
     * 给装饰者加入静态方法，以便返回在所有Quackable叫声次数
     * @return
     */
    public static int getNumberQuacks() {
        return numberQuacks;
    }
}
